1. Field of the Invention
The present invention relates generally to artificial intelligence and knowledge engineering, and more particularly to a digital computer for executing or interpreting a knowledge base to perform symbolic reasoning.
2. Description of the Related Art
Knowledge systems are computer systems that emulate reasoning tasks by using an "inference engine" to interpret encoded knowledge of human experts stored in a "knowledge base". Knowledge systems are becoming useful for problems that require diagnosis, recommendation, selection or classification. Such tasks in the past have been performed by human experts. It is becoming known that if the domain of the knowledge base, or scope of the problem, is sufficiently narrow and a sufficiently large body of knowledge is properly encoded in the knowledge base, then the knowledge system can achieve performance matching or exceeding the ability of a human expert. In such a case the knowledge system becomes an "expert system".
The first step in building a knowledge system involves encoding unstructured, often even unarticulated, knowledge into machine readable form. For expert systems in a given application domain, several different kinds of knowledge are involved. The different kinds of knowledge include the vocabulary the structure of the domain, the judgmental knowledge of the domain, and the procedures or techniques by which the domain knowledge is applied to solve a specific problem. The vocabulary of the domain refers to the names of the individual objects and ideas that must be encoded in the knowledge base. The structure of the domain refers to relationships between the objects and the ideas in the domain. The judgmental knowledge of the domain refers to the rules of thumb or rules of inference which are used by human experts to solve a problem involving uncertain knowledge or to restrict the scope of relevant knowledge or to direct the search for solutions among various possibilities covered by the knowledge base. Therefore, to some extent the procedures or techniques by which the domain knowledge is applied are a part of the judgmental knowledge of the domain. The procedures or techniques, however, also include a good deal of knowledge that could be considered routine rather than judgmental, such as how to carry out a consultation with a user.
A user typically accesses knowledge in the knowledge system interactively during a consultation. It is important that the consultation occurs in a manner that assures the user that the knowledge in the knowledge base is being properly considered and applied. It is particularly important, for example, that the user is not asked for redundant information and is given specific reasons why the knowledge system arrives at particular conclusions.
Presently there are highly developed commercial tools which may be used by skilled knowledge engineers to build knowledge systems. The well-known commercial tools (such as KS300 manufactured by Teknowledge, Inc. 525 University Avenue, Palo Alto, Calif. 94301) are patterned after a tool called EMYCIN described in The Emycin Manual by Van Melle at al., Stanford University Report No. STAN-CS-81-885, Stanford Calif. 94305 (October, 1981).
EMYCIN is specifically designed as a domain-independent system for constructing rule-based consultant expert system programs. Domain knowledge is represented in EMYCIN systems primary as condition-action production rules which are applied according to a goal-directed backward chaining control procedure. Rules and consultation data are permitted to have associated measures of certainty, and incomplete data entry is allowed. The EMYCIN system includes an explanation facility that displays the line of reasoning followed by the consultation program, and answers questions from the client about the content of the knowledge base. To aid the system designer in producing a knowledge base for a specific domain, EMYCIN provides a terse and stylized language for writing rules; extensive checks to catch common user errors, such as misspellings; and methods for handling all necessary indexing chores.
In addition to production rules, the knowledge base for an EMYCIN system includes a hierarchical structure called a "context tree". The elemental representation of an object or idea is defined as a context-parameter-value triple. The context refers generally to an instance of a particular context type, the parameter refers to an attribute of the context instance, and the value refers to the particular value of the parameter for the particular context instance. The context tree is defined by parent and offspring declarations for the context types.
A consultation is started by instantiating a root context and the branches from this root context define major steps in the consultation during which the offspring contexts of the root node are instantiated. Thus, the context definitions are used to structure the data or evidence required to advise a user about the root context. Besides consultation control, the context tree may be used to organize the distinguished components of some object, and to represent distinguished events or situations that happen to an object.
A recognized shortcoming of the EMYCIN-based tools is that the high-level control knowledge about how to conduct a consultation is buried in the rules or is intermingled with the context definitions which define the structure of the domain. As described in Erman et al., U.S. patent application Ser. No. 618,038 filed June 7, 1984, this control knowledge should be made explicit by encoding it in an applicative and imperative procedural language defining control actions to be executed during interruption of a built-in control procedure at specified control steps. To provide transparent representation of control knowledge as well as factual knowledge, the knowledge base is preferably organized into distinct frames including the rules; control blocks separately encoding the control knowledge; and classes which become instantiated, attributes which take on values describing the class instances, class types, legal value hierachies, and user defined functions, which all encode factual knowledge. The knowledge engineer may provide control blocks to be executed at the start of the consultation, after the instantiation of specified classes, when a value for a specified attribute is to be determined, after a specified attribute is determined, and upon explicit invocation by another control block. The knowledge engineering tool described in Erman et al. U.S. Ser. No. 618,038 has been manufactured and sold by Teknowledge, Inc., 525 University Avenue, Palo Alto, Calif. 94301, under the trademane "S.1". This knowledge engineering tool is intended for use by experienced knowledge engineers in building complex knowledge systems.
A knowledge engineering tool suitable for use by people with limited computer experience is described in Hardy U.S. patent application Ser. No. 617,791 filed June 6, 1984. Hardy discloses that because of the lack of knowledge engineering tools based on a transparent expert system language, a person needs a good deal of formal education in computer science as well as specialized training in knowledge engineering: to become a skilled knowledge engineer. The term "expert system language" denotes the manner or way in which factual, judgmental and control knowledge is encoded in the knowledge base. Hardy discloses a useful knowledge engineering tool for building an expert system and running a consultation on a personal-type microcomputer. The knowledge base language is easily understood because English-like language statements express facts, rules, and meta-facts for specifying control knowledge, and control during a consultation is goal directed in depth-first fashion as specified by rule order. The tool includes interactive knowledge base debugging, question generation, legal response checking, explanation, and certainty factors. For the more experienced knowledge engineer, the tool permits the use of recursive rules and universally quantified variables. The knowledge engineering tool described in Hardy Ser. No. 617,791 has been manufactured and sold by Teknowledge, Inc., 525 University Avenue, Palo Alto, Calif. 94301, under the trademark "M.1".